package io.renren.modules.dishes.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import io.renren.modules.dishes.dao.skuDao;

import io.renren.modules.dishes.entity.CommoditySkuEntity;

import io.renren.modules.dishes.service.skuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class skuServiceImpl extends ServiceImpl<skuDao, CommoditySkuEntity> implements skuService {

    @Autowired
    private skuDao skuDao;

    @Override
    public List<CommoditySkuEntity> getList(String spuId) {
        QueryWrapper<CommoditySkuEntity> queryWrapper = new QueryWrapper<CommoditySkuEntity>()
                .eq("spu_id",spuId);
        return this.list(queryWrapper);
    }

    @Override
    public CommoditySkuEntity get(String skuId) {
        QueryWrapper<CommoditySkuEntity> wrapper=new QueryWrapper<CommoditySkuEntity>()
                .eq("sku_id",skuId);
        return this.getOne(wrapper);
    }

    @Override
    public Boolean saveSku(CommoditySkuEntity sku) {
        QueryWrapper<CommoditySkuEntity> wrapper=new QueryWrapper<CommoditySkuEntity>()
                .eq("spu_id",sku.getSpuId())
                .eq("sku_price",sku.getSkuPrice())
                .eq("sku_specs",sku.getSkuSpecs())
                .eq("sku_spaces_unit",sku.getSkuSpacesUnit());
        CommoditySkuEntity one = this.getOne(wrapper);
        if (one!=null){
            return false;
        }
        return this.save(sku);
    }

    @Override
    public Boolean updateSku(CommoditySkuEntity sku) {
        QueryWrapper<CommoditySkuEntity> wrapper=new QueryWrapper<CommoditySkuEntity>()
                .eq("spu_id",sku.getSpuId())
                .eq("sku_price",sku.getSkuPrice())
                .eq("sku_specs",sku.getSkuSpecs())
                .eq("sku_spaces_unit",sku.getSkuSpacesUnit());
        CommoditySkuEntity one = this.getOne(wrapper);
        if (one!=null){
            return false;
        }
        return this.updateById(sku);
    }
}
